home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / powerd / source / lib / powerd_lib.lha / PowerD_PPC / Rnd.old.ass < prev    next >
Text File  |  2000-11-25  |  447b  |  37 lines

  1.  
  2. # Rnd(seed:r3:LONG)(LONG)
  3.  
  4.     .text
  5.     .sdreg    r2
  6.     .global    _Rnd
  7.  
  8. _Rnd:    mr.    r5,r3
  9.     blt    .set
  10.     subi    r4,r5,1
  11.     lwz    r3,.rnd(r2)
  12. .l2:    add.    r3,r3,r3
  13.     bgt    .l3
  14.     xoris    r3,r3,0x1d87
  15.     xori    r3,r3,0x2b41
  16. .l3:    srwi.    r3,r3,1
  17.     bne    .l2
  18.     stw    r3,.rnd(r2)
  19.     mr.    r5,r5
  20.     bne    .l4
  21.     rotlwi.    r3,r3,16
  22.     b    .l5
  23. .l4:    mullw    r3,r3,r5
  24. .l5:    li    r3,0
  25.     rotlwi.    r3,r3,16
  26.     blr
  27. .set:    neg    r5,r5
  28.     stw    r5,.rnd(r2)
  29.     blr
  30.  
  31.     .type    _Rnd,@function
  32.     .size    _Rnd,$-_Rnd
  33.  
  34.     .tocd
  35.     .global    .rnd
  36. .rnd:    .long    0
  37.